import request from '@/utils/request'

// 查询文件信息列表
export function listFile(query) {
  return request({
    url: '/tzai/file/list',
    method: 'get',
    params: query
  })
}

// 查询文件信息详细
export function getFile(fileId) {
  return request({
    url: '/tzai/file/' + fileId,
    method: 'get'
  })
}

// 根据业务类型和业务ID查询文件
export function getFileByBiz(bizType, bizId) {
  return request({
    url: '/tzai/file/biz',
    method: 'get',
    params: {
      bizType,
      bizId
    }
  })
}

// 新增文件信息
export function addFile(data) {
  return request({
    url: '/tzai/file',
    method: 'post',
    data: data
  })
}

// 修改文件信息
export function updateFile(data) {
  return request({
    url: '/tzai/file',
    method: 'put',
    data: data
  })
}

// 删除文件信息
export function delFile(fileId) {
  return request({
    url: '/tzai/file/' + fileId,
    method: 'delete'
  })
}

// 上传文件
export function uploadFile(file, bizType, bizId) {
  const formData = new FormData()
  formData.append('file', file)
  if (bizType) {
    formData.append('bizType', bizType)
  }
  if (bizId) {
    formData.append('bizId', bizId)
  }
  
  return request({
    url: '/tzai/file/upload',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 获取文件查看URL
export function getFileViewUrl(fileId) {
  // 在开发环境，图片src需要直接访问后端，不能使用代理路径
  // 因为<img>标签的src不会经过Vue DevServer的代理
  if (process.env.NODE_ENV === 'development') {
    // 后端运行在 localhost:8080
    return 'http://localhost:8080/tzai/file/view/' + fileId
  }
  // 生产环境使用相对路径，通过Nginx代理
  return '/prod-api/tzai/file/view/' + fileId
}

// 获取文件下载URL
export function getFileDownloadUrl(fileId) {
  return process.env.VUE_APP_BASE_API + '/tzai/file/download/' + fileId
}

